package com.godofball.medtrack.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.godofball.medtrack.dto.PurchaseDetailDto;
import com.godofball.medtrack.pojo.PurchaseDetail;

import java.util.List;

public interface PurchaseDetailService extends IService<PurchaseDetail> {

    /**
     * 保存药品项，并保存管理员编号，暂时不设置采购单编号，
     * 等提交采购表时再设置
     * @param purchaseDetail
     */
    void savePurchaseDetail(PurchaseDetail purchaseDetail);

    /**
     * 与添加类似，更新药品项，并保存管理员编号，暂时不设置采购单编号，等提交采购表时再设置
     * @param purchaseDetail
     */
    void updatePurchaseDetail(PurchaseDetail purchaseDetail);
    /**
     * 数据
     * @param pageInfo
     */
    Page<PurchaseDetailDto> page(Page<PurchaseDetail> pageInfo);

    /**
     * 根据编号删除进货药品项，该方法会检查操作用户是否与进货药品项的用户一致
     * @param id
     */
    void removePurchaseDetailById(Long id);


    /**
     * 根据进货单编号获取进货药品的详细信息，包括药品基本信息和进货单药品信息，将其封装为PurchaseDetailDto对象
     * @param purchaseId
     * @return
     */
    List<PurchaseDetailDto> getListByPurchaseId(Long purchaseId);

}
